package dao

import (
	"log"
)

type Student struct {
	ID   int
	Name string
	Sex  int8
	Age  int8
}

// 设置表对应的数据库表名
func (student *Student) TableName() string {
	return "students"
}

// 保存
func SaveStudent(student *Student) {
	err := GLOBAL_DB.Create(student).Error
	if err != nil {
		log.Println("学生数据保存异常.", err)
	}
}

// 根据id查找
func GetStudentById(id int) Student {
	var student Student
	err := GLOBAL_DB.Where("id=?", id).First(&student).Error
	if err != nil {
		log.Println("学生数据根据ID查询异常.", err)
	}
	return student
}

// 查找所有学生数据
func GetAllStudent() []Student {
	var students []Student
	err := GLOBAL_DB.Find(&students).Error
	if err != nil {
		log.Println("查询所有数据异常.", err)
	}
	return students
}

// 更新学生数据
func UpdateStudent(id int) {
	err := GLOBAL_DB.Model(&Student{}).Where("id=?", id).Update("name", "okok").Error
	if err != nil {
		log.Println("更新数据异常.", err)
	}
}

// 删除学生数据
func DeleteStudent(id int) {
	err := GLOBAL_DB.Where("id=?", id).Delete(&Student{}).Error
	if err != nil {
		log.Println("删除数据异常.", err)
	}
}

// 原生sql查询
func GetStudentSql(id int) Student{
	var student Student
	err := GLOBAL_DB.Raw("select * from students where id=?", id).Scan(&student).Error
	if err != nil {
		log.Println("原生sql查询数据异常.", err)
	}
	return student
}
